In order for software to operate properly, it has to be tested using various scenarios. Typically, a test team member (e.g., quality assurance (QA) engineer) creates a test for a specific scenario by writing code that calls various services, checks data generated by the services and passes the data between the services. Once the code for the test is written, the test team member compiles it and then deploys it for execution by a test engine. If the flow of the test changes or a particular service is modified, the test team member needs to re-write the test code, re-compile it and then re-deploy it for execution by the test engine. Hence, even an insignificant test change results in a tedious and time-consuming process.